From: Alynx Zhou Date: Mon, 4 Jul 2022 03:59:43 +0000 (+0800) Subject: ibusCandidatePopup: Prevent it from covering screenshot UI X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~461^2^2~282 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=67a1d3b2622a8c0f00c68fca85d44af8b6fd9904;p=gnome-shell.git ibusCandidatePopup: Prevent it from covering screenshot UI If we only raise screenshot UI to top, ibusCandidatePopup can still cover screenshot UI because each time ibusCandidatePopup updates it's visibility it will raise it to top and this also happens if we open screenshot UI via keybinding. This commit fixes it by only raising it above keyboardBox, because keyboardBox is above all entries in modal dialogs. Part-of: --- diff --git a/js/ui/ibusCandidatePopup.js b/js/ui/ibusCandidatePopup.js index 2a34144d5..6d7c0e0fa 100644 --- a/js/ui/ibusCandidatePopup.js +++ b/js/ui/ibusCandidatePopup.js @@ -322,7 +322,12 @@ class IbusCandidatePopup extends BoxPointer.BoxPointer { if (isVisible) { this.setPosition(this._dummyCursor, 0); this.open(BoxPointer.PopupAnimation.NONE); - this.get_parent().set_child_above_sibling(this, null); + // We shouldn't be above some components like the screenshot UI, + // so don't raise to the top. + // The on-screen keyboard is expected to be above any entries, + // so just above the keyboard gets us to the right layer. + const { keyboardBox } = Main.layoutManager; + this.get_parent().set_child_above_sibling(this, keyboardBox); } else { this.close(BoxPointer.PopupAnimation.NONE); }